package com.example.spring_cloud_zuul;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;

import com.example.spring_cloud_zuul.filter.AccessFilter;

/**
 * 应用主类使用@EnableZuulProxy注解开启Zuul。<br>
 * 这里用了@SpringCloudApplication注解，之前没有提过，通过源码看到，<br>
 * 它整合了@SpringBootApplication、@EnableDiscoveryClient、@EnableCircuitBreaker，<br>
 * 主要目的还是简化配置。
 */
@EnableZuulProxy
@SpringCloudApplication
public class ZuulApplication {
	/**
	 * 启动服务网关
	 */
	public static void main(String[] args) {
		new SpringApplicationBuilder(ZuulApplication.class).web(true).run(args);
	}

	/**
	 * 在实现了自定义过滤器之后，还需要实例化该过滤器才能生效
	 */
	@Bean
	public AccessFilter accessFilter() {
		return new AccessFilter();
	}
}
